package voxToolkit;

import grafico.Fabrica;

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import audio.AudioSintetizado;

public class VoxTabbedPane extends JTabbedPane implements FocusListener, ChangeListener
{
	private String rotulo;
	private int jaFalou = 0;
	private AudioSintetizado sintetizador;
	
	/**
	 * Cria uma lista de abas vazia à qual novas abas
	 * podem ser adicionadas.
	 */
	public VoxTabbedPane ()
	{
		setFont(Fabrica.fonteMedia);
		setBackground(Fabrica.azulMedio);
		setForeground(Fabrica.branco);
		this.rotulo = "Lista de Abas";
		
		sintetizador = AudioSintetizado.instancia();
		
		addChangeListener(this);
		addFocusListener(this);
	}

	public String getRotulo() {
		return rotulo;
	}

	@Override
	public void focusGained(FocusEvent e) {
		if ( e.getSource() instanceof VoxTabbedPane ){
			
			VoxTabbedPane  voxTabbedPane = (VoxTabbedPane) e.getSource();
			
			if (voxTabbedPane.jaFalou!=0){
				
				sintetizador.escreve("Página " + voxTabbedPane.getTitleAt(voxTabbedPane.getSelectedIndex()));
			}		
			voxTabbedPane.jaFalou ++;
		}    
		
	}

	@Override
	public void focusLost(FocusEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void stateChanged(ChangeEvent e) {
		
		if ( e.getSource() instanceof VoxTabbedPane ){
			sintetizador.abortaFala();
			VoxTabbedPane  voxTabbedPane = (VoxTabbedPane) e.getSource();
						
			if(voxTabbedPane.getSelectedIndex()==0){	
				sintetizador.escreve(voxTabbedPane.getRotulo() + ". Página " + voxTabbedPane.getTitleAt(voxTabbedPane.getSelectedIndex()));
			}
			else{
				sintetizador.escreve("Página " + voxTabbedPane.getTitleAt(voxTabbedPane.getSelectedIndex()));
			}
		}
		
	}
}